#ifndef OPENCVQTUTILS_H
#define OPENCVQTUTILS_H

#include <QImage>

#include <opencv2/core.hpp>

class OpencvQtUtils
{
public:
    //! 不允许实例化
    ~OpencvQtUtils() = delete;

    /** @brief: cv::Mat转QImage（深拷贝）
     * @note: cv::Mat的默认的像素排序为bgr，QImage的默认排序为rgb
     * @param[in] image: 带转换的cv::Mat类型的图像
     * @param[in] swap_rgb: 是否转换rgb的顺序
     * @return: QImage类型的图像
    */
    static QImage toQimage(const cv::Mat& image, bool swap_rgb = true);

    /** @brief: QImage转cv::Mat（深拷贝）
     * @note: cv::Mat的默认的像素排序为bgr，QImage的默认排序为rgb
     * @param[in] image: 带转换的QImage类型的图像
     * @param[in] swap_rgb: 是否转换rgb的顺序
     * @return: cv::Mat类型的图像
    */
    static cv::Mat toCvMat(const QImage& image, bool swap_rgb = true);

protected:

private:
};


#endif // OPENCVQTUTILS_H
